package com.glory.gloryquickui.entity


import com.google.gson.annotations.SerializedName

/**
 * @author HX
 * @date 2021/4/7
 * @desc 控件主要属性
 */
open class FieldBean{
    @SerializedName("active-color")
    var activeColor: Any? = Any() // null
    @SerializedName("active-text")
    var activeText: String = ""
    @SerializedName("active-value")
    var activeValue: Boolean = false // true
    @SerializedName("allow-half")
    var allowHalf: Boolean = false // false
    var autosize: StyleBean.Autosize = StyleBean.Autosize()
    var circle: Boolean = false // false
    var clearable: Boolean = false // true
    @SerializedName("__config__")
    var config: ConfigBean = ConfigBean()
    @SerializedName("controls-position")
    var controlsPosition: String = ""
    var disabled: Boolean = false // false
    @SerializedName("end-placeholder")
    var endPlaceholder: String = "" // 结束日期
    var filterable: Boolean = false // false
    var format: String = "" // yyyy-MM-dd
    var icon: String = "" // el-icon-search
    @SerializedName("inactive-color")
    var inactiveColor: Any? = Any() // null
    @SerializedName("inactive-text")
    var inactiveText: String = ""
    @SerializedName("inactive-value")
    var inactiveValue: Boolean = false // false
    @SerializedName("is-range")
    var iRange: Boolean = false // true
    var max: Int = 0 // 100
    var maxlength: Any? = Any() // null
    var min: Int = 0 // 0
    var multiple: Boolean = false // false
    var placeholder: String = "" // 请输入单行文本
    var plain: Boolean = false // false
    @SerializedName("prefix-icon")
    var prefixIcon: String = ""
    var range: Boolean = false // false
    @SerializedName("range-separator")
    var rangeSeparator: String = "" // 至
    var readonly: Boolean = false // false
    var round: Boolean = false // false
    var separator: String = "" // /
    @SerializedName("show-all-levels")
    var showAllLevels: Boolean = false // true
    @SerializedName("show-password")
    var showPassword: Boolean = false // true
    @SerializedName("show-score")
    var showScore: Boolean = false // false
    @SerializedName("show-stops")
    var showStops: Boolean = false // false
    @SerializedName("show-text")
    var showText: Boolean = false // false
    @SerializedName("show-word-limit")
    var showWordLimit: Boolean = false // false
    var size: String = "" // medium
    @SerializedName("__slot__")
    var slot: StyleBean.Slot = StyleBean.Slot()
    @SerializedName("start-placeholder")
    var startPlaceholder: String = "" // 开始日期
    var step: Int = 0 // 1
    @SerializedName("step-strictly")
    var stepStrictly: Boolean = false // false
    var style: StyleBean = StyleBean()
    @SerializedName("suffix-icon")
    var suffixIcon: String = ""
    var type: String = "" // textarea
    @SerializedName("__vModel__")
    var vModel: String = "" // field_101
    @SerializedName("__vColumn__")
    var vColumn: String = "" // field_101
    @SerializedName("value-format")
    var valueFormat: String = "" // yyyy-MM-dd
    var border: Boolean = false //边框
    var stripe: Boolean = false //条纹
    var tablelineData: ArrayList<ArrayList<TableCustomBean>>? = arrayListOf() // 表格类型行数据
    var tablePortraitData: ArrayList<TablePortraitBaseCustomBean>?= arrayListOf() // 表格类型列数据
    var options: MutableList<OptionBean>? = mutableListOf()
    var label: String = "" // 日期
    var prop: String = "" // date
    var sortable: Boolean = false // true
    var formQueryCondition = HashMap<String, String>() //表单查询条件
    var operat:Operat? = Operat()

    data class BaseData(
        var columns: List<Any> = listOf(),
        var dataName: String = "",
        var id: String = "",
        var queryCell: List<Any> = listOf(),
        var tables: List<Any> = listOf(),
        var tableList:List<Any> = listOf(),
        var params:ArrayList<DataTableBean> = arrayListOf(),
        var dataConnectId:String = "",
        var dataSource:ArrayList<String> =  arrayListOf()

    )

    data class Operat(
        var showDetail: Boolean = false,
        var label:String = "",
        var i18nlabel:String = "",
        var width:Int = 0,
        var align:String = "",
        var fixed:String = "",
        var size:String = "",
        var isOperat:Boolean = false,
        var children:ArrayList<FieldBean>? = arrayListOf()
    )
}
